1. Field of the Invention
The present invention relates generally to an apparatus and method for generating Forward Error Correction (FEC) codes in a wireless data communication system. More particularly, the present invention relates to an apparatus and method for generating FEC codes having a variable rate.
2. Description of the Related Art
In general, wireless data communication systems are classified as a Mobile Communication System (MCS), Wireless Local Area Network (WLAN), Wide Area Network (WAN) or Metropolitan Area Network (MAN), all of which are based on mobile communication technology. For the Mobile Communication System, systems for high-speed data transmission are also being developed independently by 3rd Generation Partnership Project-2 (3GPP2), a standardization group for a synchronous Code Division Multiple Access (CDMA) mobile communication system, and 3rd Generation Partnership Project (3GPP), a standardization group for an asynchronous Universal Mobile Telecommunications System (UMTS) mobile communication system. Also, for WLAN, WAN and MAN, various attempts are also being made to transmit radio data at a high rate in the area of IEEE 802.11 to IEEE 802.16 standardization.
A description will now be made of Adaptive Modulation & Coding (AMC) as attempted in the foregoing communication standards. Also, a description will be made of an IEEE 802.16a system, a CDMA2000 1×EV-DV (Evolution with Data and Voice) system based on the CDMA mobile communication system, and a High speed Portable Internet (HPi) system currently being developed in South Korea for high-speed data transmission in a 2.4 GHz band, all of which comprise the most substantially advanced systems in the related technical field.
First, an IEEE 802.16a system will be described. The IEEE 802.16a system is a system using Orthogonal Frequency Division Multiple Access (OFDMA).
FIG. 1 is a block diagram illustrating the structures of physical channels for transmitting high-rate data in an IEEE 802.16a system using Orthogonal Frequency Division Multiplexing (OFDM). Referring to FIG. 1, all of the physical channels transmitted to users User1, User2, . . . , Userm have the same structure. Therefore, in FIG. 1, the same elements are assigned the same reference numerals, and different letters such as a, b, . . . , m are added to the ends of the reference numerals as indicators for indicating the respective users and their associated physical channels. Parameters used in the physical channels for the users User1, User2, . . . , Userm can have either the same values or different values. For example, the respective physical channels can be different from one another in input packet size, code rate, modulation order and transmission duration. A description will now be made of a physical channel for a first user User1, by way of example.
In a physical channel, data User1_Data to be transmitted to a first user User1 is input to a Cyclic Redundancy Check (CRC) adder 101a, and the CRC adder 101a adds a CRC to the input user data User1_Data so that a reception side can detect an error occurring due to noises in a channel transmission process. The CRC-added user data is input to a tail bit adder 103a, and the tail bit adder 103a adds tail bits to the CRC-added user data. The CRC is an error correction code used for correcting an error occurring due to noises in a channel transmission process, and is generally used for Forward Error Correction (FEC). Generally, convolutional codes or turbo codes are used for the FEC used in a wireless communication system. These codes use tail bits which are termination bits for terminating the corresponding codes at a ‘0’ state on a trellis diagram. Therefore, the tail bit-added data is FEC-encoded by an FEC encoder 105a. As this is well disclosed in the related references, a detailed description thereof will be omitted herein.
Next, in order to match the number of output signals of the FEC encoder 105a to the number of modulation symbols allocated to each user, a symbol repetition & puncturing part 107a performs symbol repeating and puncturing on the FEC-encoded data. The symbols that underwent repetition and puncturing are input to a channel interleaver 109a for converting a burst error occurring in the channel into a random error, and the channel interleaver 109a channel-interleaves the input symbols. The channel-interleaved symbols are input to a modulator 111a, and the modulator 111a modulates the channel-interleaved symbols. The modulated symbols are input to a subcarrier or subchannel mapper and an NOS or NOOS mapper 120. The subcarrier or subchannel mapper and the NOS or NOOS mapper 120 performs subcarrier or subchannel mapping, and NOS (Number of Slots) or NOOS (Number of OFDM Symbols) mapping on the modulated symbols for a transmission duration allocated to each user. The subcarrier or subchannel mapper and the NOS or NOOS mapper 120 simultaneously processes data for all users. The symbols output from the subcarrier or subchannel mapper and the NOS or NOOS mapper 120 are input to an inverse fast Fourier transform (IFFT) 130, and the IFFT 130 performs inverse fast Fourier transform on the input symbols. In this way, data for each user is converted into one carrier signal and delivered to a radio frequency (RF) unit (not shown).
In the foregoing description, “NOS” or “NOOS” designates a transmission duration allocated to each user, and is variable according to a size of user data. Therefore, an increase in NOS or NOOS causes an increase in transmission time allocated to one packet. In addition, “subchannel” designates a set of subcarriers used in Orthogonal Frequency Division Multiplexing (OFDM). It is not necessary that the subcarriers constituting one subchannel should always be arranged in a regular sequence in a frequency domain, and it is typical that multiple subcarriers constitute one subchannel according to a particular pattern. For example, when a given frequency bandwidth is divided into 2048 orthogonal frequencies, if there are 1st to 2048th subcarriers, one subchannel can be configured with 4 subcarriers of 1st, 8th, 16th, 32nd and 64th subcarriers. The configuration of a subchannel and the number of subcarriers constituting the subchannel are subject to change according to standards.
FIG. 2 is a block diagram illustrating structures of physical channels for transmitting data to a user in a current HPi high-rate data system. FIG. 2 is substantially identical in structure to that of FIG. 1 except that the structure of FIG. 2 does not add CRC and tail bits. This is because the CRC function can be performed in a Medium Access Control (MAC) layer. Therefore, elements 205, 207, 209, 211, 220 and 230 in FIG. 2 correspond to the elements 105, 107, 109, 111, 120 and 130 of FIG. 1, respectively. When the structures of both FIGS. 1 and 2 have multiple modulators and multiple FEC code rates, they require a scheme for determining a code rate and a modulation order for guaranteeing each user the best performance.
As illustrated in FIGS. 1 and 2, in a physical channel for a packet transmission service, a modulator is necessary. In addition, FEC codes are used in order to overcome data errors caused by noises occurring in a radio communication channel. However, in the current physical channel for a packet transmission service, FEC codes with a fixed rate are generally used and in particular, the best codes for a given rate are used. This is because the physical channel for a packet transmission service has a characteristic of a stationary channel, such as an Additive White Gaussian Noise (AWGN) channel. Therefore, there is less necessity to take the FEC codes using an adaptive rate into consideration. For example, IEEE 802.16a, a high-rate wireless data service standard, does not guarantee mobility of a mobile station and uses only 6 FEC code rates. A detailed description of the standard is well disclosed in the IEEE 802.16a physical channel standard, the entire contents of which are incorporated herein by reference. While the mobile communication system uses binary turbo codes, the IEEE 802.16a uses duo-binary turbo codes.
The duo-binary turbo codes will now be described in greater detail. FIG. 3 is a block diagram illustrating an apparatus for generating rate R=1/2 duo-binary turbo codes, and FIG. 4 is a block diagram illustrating an apparatus for generating R=1/3 duo-binary turbo codes.
As illustrated in FIG. 3, an R=1/2 duo-binary turbo encoder receives 2 information symbols A and B in parallel. The 2 information symbols A and B received in parallel are input in common to a first constituent encoder 301 and a turbo interleaver 302. The turbo interleaver 302 interleaves the 2 parallel input information symbols A and B, and outputs the interleaved information symbols to a second constituent encoder 303. The 2 parallel input information symbols A and B are output intact as systematic symbols, and the first constituent encoder 301 and the second constituent encoder 303 generate parity symbols C1 and C2, respectively, using the 2 input information symbols A and B. As a result, the 2 input information symbols are output intact as systematic symbols, and each constituent encoder generates one parity symbol. Therefore, a code rate of the encoder is 1/2.
An R=1/3 duo-binary turbo encoder of FIG. 4 receives 2 information symbols A and B in parallel. The 2 parallel input information symbols A and B are input in common to a first constituent encoder 401 and a turbo interleaver 402. The turbo interleaver 402 interleaves the 2 parallel input information symbols A and B, and outputs the interleaved information symbols to a second constituent encoder 403. The 2 parallel input information symbols A and B are output intact as systematic symbols, and the first constituent encoder 401 and the second constituent encoder 403 generate parity symbol pairs C11; C12 and C21; C22, respectively, using the 2 input information symbols A and B. As a result, the 2 input information symbols are output intact as systematic symbols, and each constituent encoder generates two parity symbols. Therefore, a code rate of the encoder is 1/3.
A description will now be made of an encoding method performed in the duo-binary turbo encoders of FIGS. 3 and 4. It will be assumed that a size of an information symbol to be encoded is N_EP, and N_EP/2 information symbol pairs that are generated by halving the size N_EP information symbol are denoted by A_i and B_i (wherein i=0, 1, . . . , N_EP/2), respectively. In this case, the duo-binary turbo encoder encodes a symbol pair A_i and B_i by a first constituent encoder 301 (or 401) and outputs a parity symbol C1 (or a parity symbol pair C11;C12) as the encoding result. Next, the turbo interleaver 302 (or 402) interleaves the N_EP/2 information symbol pairs A_i and B_i, and outputs the interleaved information symbol pairs to a second constituent encoder 303 (or 403). The second constituent encoder 303 (or 403) encodes the input information symbol pairs, and outputs a parity symbol C2 (or a parity symbol pair C21; C22) as the encoding result. As a result, for N_EP input information symbols, the R=1/2 duo-binary turbo encoder outputs 2N_EP codeword symbols and the R=1/3 duo-binary turbo encoder outputs 3N_EP codeword symbols.
It is generally known to those skilled in the art that the duo-binary turbo codes are slightly superior to the binary turbo codes in performance gain at a high code rate. When compared with the binary turbo codes whose information symbol size is N_EP, the duo-binary turbo codes whose information symbol size is also N_EP, are reduced to 1/2 in trellis length, that is, frame length, contributing to a 1/2 reduction in decoding delay. Disadvantageously, however, the duo-binary turbo codes are inferior to the binary turbo codes in performance at a lower code rate. In addition, the duo-binary turbo codes are higher than the binary turbo codes in terms of decoding complexity, because 4 branches are used for each state in a trellis diagram.
However, CDMA2000 1x EV-DV (Evolution with Data and Voice), a synchronous mobile communication standard, guarantees mobility of a mobile station. For a system to guarantee mobility, not only should data error caused by noises occurring in a wireless communication channel be taken into consideration, but also various schemes for overcoming a data error caused by fading should be taken into consideration. For example, in order for a transmitter to actively cope with a dynamic change in signal-to-noise ratio (SNR) occurring in a fading channel environment, a packet modulation scheme of transmitting the same transmission packet at all times and an AMC scheme of varying a code rate of FEC codes are extensively considered. For example, in CDMA2000 1x EV-DV, Quasi-Complementary Turbo Codes (QCTC) are used for a physical channel as a scheme for freely supporting a variable code rate. The QCTC designates a set of turbo codes with various code rates selected by a symbol selector after code symbols, encoded from a given mother code according to a specific rule, are rearranged as shown in FIG. 5.
With reference to FIG. 5, a description will now be made of an operation of QCTC selected as a standard for a CDMA2000 1x EV-DV system. When an information stream 500 is input to a turbo encoder 510 having a rate R=1/5, the turbo encoder 510 performs turbo coding on N_EP input information symbols using a mother code. As a result, the turbo encoder 510 generates 5×N_EP code symbols. The generated code symbols are demultiplexed into 5 sub-blocks by a code symbol separator 512. The separated code symbols are denoted by reference numeral 514. The code symbols 514 are divided into a systematic symbol group (or sub-block X) and a plurality of parity symbol groups (or sub-blocks Y0, Y1, Y′0 and Y′1). The respective symbol groups undergo Partial Bit Reversal Order (PBRO) interleaving. Here, the respective sub-blocks undergo independent interleaving. This is called “sub-block interleaving.” Reference numerals 516a, 516b, 516c, 516d and 516e denote independent devices for performing the PBRO interleaving.
Among the PBRO-interleaved symbols, systematic symbols are output intact, and the PBRO-interleaved parity symbols are interlacedly rearranged by interlacers 518a and 518b. The rearrangement is achieved in such a manner that two symbols are interlaced once. That is, the interlacer 518a forms a new group by interlacing parity symbols Y0 and Y′0. Similarly, the interlacer 518b interlacedly rearranges parity symbols Y1 and Y′1 generated in each sub-block, thereby forming a new group. Therefore, each group generated by interlacing has a size of 2×N_EP.
Next, the sub-block comprised of interleaved systematic symbols and the 2 interlaced parity groups are arranged in a regular order and then concatenated, thus generating one new sequence. Here, this operation is denoted by “QCTC Symbols” and reference numeral 520. Through a series of the processes described above, symbol rearrangement for generating QCTC codes is completed. Next, a QCTC symbol selector 522 generates QCTC codes having various code rates by selecting random symbols from 5×N_EP symbols. A conventional binary QCTC design criteria is to take performance improvements of a received signal in a fading channel into consideration. The QCTC design criteria are characterized by optimizing not only code performance, but also channel interleaving performance. The channel interleaving is generally achieved by sub-block interleaving and interlacing.
According to the current HPi standard, there are some 120 possible different combinations of modulation schemes and FEC code rates. However, there is no proposed scheme for generating and determining FEC codes supporting the possible combinations, that is, turbo codes having various code rates. Particularly, an OFDM/OFDMA system has no proposed method for varying an FEC code rate according to a relation between a modulation scheme and an FEC code rate corresponding to each data rate. In addition, when Hybrid Automatic Repeat Request (HARQ) is used, there is no proposed scheme for generating various redundancies.
For the binary turbo codes used in a mobile communication system, that is, binary turbo codes defined in the CDMA2000 1x EV-DV standard, QCTC has been proposed as a scheme for providing various codes in the foregoing environments. However, QCTC is basically optimized for binary turbo codes. Therefore, separate optimization is required when non-binary turbo codes such as duo-binary turbo codes are used as mother codes. In particular, the use of the duo-binary turbo codes requires symbol classification and interleaving in which a characteristic of systematic symbols are taken into consideration.
Accordingly, a need exists for an apparatus and method for generating desired codes and for decoding the desired codes in a high-rate wireless data system.